﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Forums.OfflineStore;

namespace Microsoft.Forums.ForumsProvider
{
    /// <summary>
    /// A user object with extra information such as permisions
    /// </summary>
    public class DetailedUser : User
    {
        /// <summary>
        /// Gets or sets the permissions.
        /// </summary>
        /// <value>The permissions.</value>
        public List<Permission> Permissions
        {
            get;
            set;
        }
    }

    /// <summary>
    /// Details the permission for a forum
    /// </summary>
    public class Permission
    {
        /// <summary>
        /// Gets or sets a value indicating whether this instance can mark answers.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance can mark answers; otherwise, <c>false</c>.
        /// </value>
        public bool CanMarkAnswers { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance can post.
        /// </summary>
        /// <value><c>true</c> if this instance can post; otherwise, <c>false</c>.</value>
        public bool CanPost { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance can view abusive.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance can view abusive; otherwise, <c>false</c>.
        /// </value>
        public bool CanViewAbusive { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance can view deleted.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance can view deleted; otherwise, <c>false</c>.
        /// </value>
        public bool CanViewDeleted { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance can view message history.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance can view message history; otherwise, <c>false</c>.
        /// </value>
        public bool CanViewMessageHistory { get; set; }

        /// <summary>
        /// Gets or sets the forum id.
        /// </summary>
        /// <value>The forum id.</value>
        public System.Guid ForumId { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance is answerer.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance is answerer; otherwise, <c>false</c>.
        /// </value>
        public bool IsAnswerer { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance is moderator.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance is moderator; otherwise, <c>false</c>.
        /// </value>
        public bool IsModerator { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance is owner.
        /// </summary>
        /// <value><c>true</c> if this instance is owner; otherwise, <c>false</c>.</value>
        public bool IsOwner { get; set; }
    }
}
